
\chapter{Other Lisps}


{\bf T} is a dialect of Lisp derived from Scheme and influenced by Common
Lisp and NIL. {\bf T3} provides an environment with a Scheme emulation.

\section{Scheme Environment}


Scheme is specified by Revised3 Report on Scheme.  {\bf T3} provides the environment
{\mbox {{\tt SCHEME-ENV}}} which supports some subset of Scheme.

The Scheme interpreter is entered using {\mbox {{\tt SCHEME-RESET}}} and
{\mbox {{\tt SCHEME-BREAKPOINT}}}, and is left using {\mbox {{\tt T-RESET}}}.

\index{SCHEME-BREAKPOINT@{\tt SCHEME-BREAKPOINT}}
{\mbox {\tt (SCHEME-BREAKPOINT) $\longrightarrow$\  {\it undefined}}}
\hfill  

\begin{inset}{}
Enters a Scheme read-eval-print-loop in the Scheme environment.
Similar to the {\bf T} procedure {\mbox {{\tt BREAKPOINT}}}.
\end{inset}

\index{SCHEME-RESET@{\tt SCHEME-RESET}}
{\mbox {\tt (SCHEME-RESET) $\longrightarrow$\  {\it undefined}}}
\hfill  

\begin{inset}{}
Enters a top level Scheme read-eval-print-loop in the Scheme
environment.
This is equivalent to doing {\mbox {{\tt SCHEME-BREAKPOINT}}} followed by {\mbox {{\tt RESET}}}.
\end{inset}

\index{T-RESET@{\tt T-RESET}}
{\mbox {\tt (T-RESET) $\longrightarrow$\  {\it undefined}}}
\hfill  

\begin{inset}{}
Enters a top level {\bf T} read-eval-print-loop in the {\bf T} {\mbox {{\tt USER-ENV}}}.
\end{inset}

When in Scheme, {\mbox {{\tt RESET}}} is rebound to {\mbox {{\tt SCHEME-RESET}}}.

\index{RESET@{\tt RESET}}
{\mbox {\tt (RESET) $\longrightarrow$\  {\it undefined}}}
\hfill  

\begin{inset}{}
Transfers control directally to the top-level Scheme read-eval-print
loop by performing a throw.
\end{inset}

Switching between {\mbox {{\tt SCHEME-ENV}}} and {\mbox {{\tt USER-ENV}}} does not alter
the bindings made in {\mbox {{\tt SCHEME-ENV}}}.

The value of symbols in the {\mbox {{\tt SCHEME-ENV}}} can be accessed from other
environments using {\mbox {{\tt *VALUE}}}, but it is not posible to do the
reverse from {\mbox {{\tt SCHEME-ENV}}}.
